<!DOCTYPE html>
<html lang="en">
<head xmlns:th="http://www.thymeleaf.org">
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="/css/bootstrap.min.css">
    <script src="/js/jquery-3.6.1.min.js"></script>
    <style type="text/css">
        /*不同颜色的条纹表格*/
        /*odd 表示奇数行*/
        table.table-striped tr:nth-child(odd) td{
            background: lightblue;
        }
        /*even 表示偶数行*/
        table.table-striped tr:nth-child(even) td{
            background: lightpink;
        }
        /*鼠标悬停，表格变颜色*/
        /*table.table-hover tr:hover{*/
        /*    background: yellowgreen;*/
        /*}*/
        /*#bt1{*/
        /*    position: absolute;*/
        /*    left: 56.5%;*/
        /*    top: 30.8%;*/
        /*}*/
    </style>


</head>
<body>
<div class="container-fluid" style="border: red solid 1px">
    <!--<div class="container-fluid">-->
    <p align="center" style="font-size: 30px">学生表</p>
    <!-- Button trigger modal -->
    <button type="button" class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal" onclick="preAdd()">
        新增学生
    </button>
    <br>
    <br>

    <!--    table-bordered:给表格加外边框-->
    <!--    table-hover:鼠标悬停时，对应的行变色-->
    <!--    table-striped:条纹状表格-->
    <!--        table-condensed:紧缩表格-->
    <table class="table table-bordered "  >
        <!--    <table class="table table-bordered table-hover table-condensed"  >-->
        <!--    <table class="table table-bordered "  >-->
        <thead>
        <tr>
            <th>#</th>
            <th>学号</th>
            <th>姓名</th>
            <th>密码</th>
            <th>性别</th>
            <th>年龄</th>
            <th>成绩</th>
            <th style="width: 100px;">操作</th>
        </tr>
        </thead>
        <tbody id="studentTb">
        </tbody>
        <!--        前端我们通过 data-th-each= 标签遍历data的内容并将data的内容通过table标签完全的显示出来-->
        <!--利用th-each循环tr-->
        <!--        <tr data-th-each="student : ${data}">-->
        <!--            <th scope="row" data-th-text="${student.id}"></th>-->
        <!-- th:text 为Thymeleaf属性，用于展示纯文本，会对特殊字符进行转义-->
        <!-- 经过thymeleaf解析后，会将原来的内容进行替换 -->
        <!--            <td data-th-text="${student.no}"></td>-->
        <!--            <td data-th-text="${student.name}"></td>-->
        <!--            <td data-th-text="${student.sex}"></td>-->
        <!--            <td th:if ="${student.sex==1}">男</td>-->
        <!--            <td th:if ="${student.sex==2}">女</td>-->
        <!--            <td th:if ="${student.sex==0}">未知</td>-->
        <!--            <td data-th-text="${student.age}"></td>-->
        <!--            <td data-th-text="${student.score}"></td>-->
        <!--        </tr>-->

    </table>
</div>

<div class="modal fade" tabindex="-1" role="dialog" id="myModal">
    <div class="modal-dialog" role="document">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
                <h4 class="modal-title">学生信息</h4>
            </div>
            <div class="modal-body">
                <form id="formStudent">
                    <input hidden="hidden" id="id" name="id" />
                    <div class="form-group">
                        <label for="no">学号</label>
                        <input type="text" class="form-control" id="no" name="no" placeholder="学号">
                    </div>
                    <div class="form-group">
                        <label for="name">姓名</label>
                        <input type="text" class="form-control" id="name" name="name" placeholder="姓名">
                    </div>
                    <div class="form-group">
                        <label for="password">密码</label>
                        <input type="password" class="form-control" id="password" name="password" placeholder="密码">
                    </div>
                    <div class="form-group">
                        <label for="sex">性别</label>
                        <select class="form-control" id="sex" name="sex">
                            <option value="1">男</option>
                            <option value="2">女</option>

                        </select>
                    </div>
                    <div class="form-group">
                        <label for="age">年龄</label>
                        <input type="text" class="form-control" id="age" name="age" placeholder="年龄">
                    </div>
                    <div class="form-group">
                        <label for="score">成绩</label>
                        <input type="text" class="form-control" id="score" name="score" placeholder="成绩">
                    </div>
                </form>
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-default" onclick="saveStudent()">保存</button>

            </div>
        </div><!-- /.modal-content -->
    </div><!-- /.modal-dialog -->
</div><!-- /.modal -->
<br>
<br>
<br>

<form class="form-inline" role="form" align="center">
    <div class="form-group">
        <!--        文本域通过 <input type="text"> 标签来设定，当用户要在表单中键入字母、数字等内容时，就会用到文本域。-->
        <input type="text" class="form-control" id="nameorno"
               placeholder="请输入姓名或者学号">
        <input type="button" onclick="sel()" value="查询" />
        <input type="button" onclick="goback()" value="返回" />
    </div>
    <!--    <button onclick="sel()" class="btn btn-default" id="bt1">查询</button>-->

</form>

<br>
<br>
<br>
<pre><p id="p1"align="center"></p></pre>

<script src="/js/bootstrap.min.js"></script>





<script type="text/javascript">

    function preAdd(){
        $("#id").val(0);//提示新增
    }
    //新增或者更新
    function saveStudent(){

        // ajax获取form表单所有值,serialize() 函数用于序列化对象或数组，并返回一个字符串。可以一次性获取到表单中的所有的数据。
        // 注意：在使用 serialize() 函数快速获取表单数据时， 必须为每个表单元素添加 name 属性 ！
        let data=$("#formStudent").serialize();
        let id=$("#id").val();
        if(id<1){
            //是新增
            $.ajax({
                url:"/webapi/student/insert",
                method:"post",
                data:data
            }).done(function(){

                loadTable();
                // 把modal隐藏
                $('#myModal').modal('hide')
            })
        }
        else{
            //是更新
            $.ajax({
                url:"/webapi/student/update",
                method:"put",
                data:data
            }).done(function(){

                loadTable();
                $('#myModal').modal('hide')
            })
        }


    }

    function editStudent(id){

        $("#myModal").modal('show');

        $.ajax({

            url:"/webapi/student/get/"+id

        }).done(function(rs){

            $("#id").val(rs.id);
            $("#no").val(rs.no);
            $("#name").val(rs.name);
            $("#password").val("");
            $("#sex").val(rs.sex);
            $("#age").val(rs.age);
            $("#score").val(rs.score);
        })
    }

    function deleteStudent(id){
        if(confirm("你是否真的要删除吗？别后悔哦！")){

            $.ajax({

                url:"/webapi/student/delete/"+id,
                method:"delete"

            }).done(function(){
                loadTable();

            });
        }

    }//end if
    function loadTable(){
        $.ajax({
            // url: 要求为String类型的参数，（默认为当前页地址）发送请求的地址。
            url: '/webapi/student/list'
            // 调用嵌套在父ajax请求的.done()方法
        }).done(function (rs) {
            // 获取遍历长度
            let len = rs.length;

            let html = "";
            for (let i = 0; i < len; i++) {

                let item =rs[i];
                let dsex = item.sex;
                // 判断性别，将数字转为文字
                if (dsex == 1) {
                    dsex = "男";
                } else if (dsex == 2) {
                    dsex = "女";
                } else {
                    dsex = "未知";
                }
                html += "<tr>"
                    + "<td>" + item.id + "</td>"
                    + "<td>" + item.no + "</td>"
                    + "<td>" + item.name + "</td>"
                    + "<td>" + item.password + "</td>"
                    + "<td>" + dsex + "</td>"
                    + "<td>" + item.age + "</td>"
                    + "<td>" + item.score + "</td>"

                    + "<td> <a href='#' onclick='editStudent("+item.id+");'>编辑</a>  <a href='#' onclick='deleteStudent("+item.id+");'>删除</a></td>"

                    + "</tr>";
            }

            $("#studentTb").html(html);

        })

    }
    $(function() {

        loadTable();
    });

</script>


<script th:inline="javascript">
    let student=[[${data}]];
    let len=student.length;
    function sel(){
        // Document 的方法 getElementById () 返回一个匹配特定 ID 的元素
        let p1 = document.getElementById("p1");
        // Document 的方法 getElementById ().value 返回一个匹配特定 ID 的元素的值
        let dd=document.getElementById("nameorno").value;
        let dx="";
        let html = "";
        for(let i=0;i<len;i++)
        {

            if(student[i].name==dd||student[i].no==dd) {
                let dsex = student[i].sex;
                // 判断性别，将数字转为文字
                if (dsex == 1) {
                    dsex = "男";
                } else if (dsex == 2) {
                    dsex = "女";
                } else {
                    dsex = "未知";
                }
                dx += "学号: " + student[i].no + "  " + "姓名: " + student[i].name + "  " + "性别: " + dsex + "  " + "年龄: " + student[i].age + "分数:" + student[i].score+"\n\n";
                p1.innerHTML=dx;

                // 修改对象 p1的值

                // break;
                //

                html += "<tr>"
                    + "<td>" +student[i].id + "</td>"
                    + "<td>" + student[i].no + "</td>"
                    + "<td>" +student[i].name + "</td>"
                    + "<td>" + student[i].password + "</td>"
                    + "<td>" +dsex + "</td>"
                    + "<td>" + student[i].age + "</td>"
                    + "<td>" + student[i].score + "</td>"
                    + "<td> <a href='#' onclick='editStudent("+student[i].id+");'>编辑</a>  <a href='#' onclick='deleteStudent("+student[i].id+");'>删除</a></td>"

                    + "</tr>";

                $("#studentTb").html(html);
            }
            else if(dd==""){
                dx="查无此人"
                p1.innerHTML=dx;
            }

        }


    }
    function goback(){
        loadTable();
    }

</script>
</body>
</html>